/*
 * Ganesa Copyright (C) 2008 Wim Crols <twimpiex@gnx.be>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License Version 3
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

package be.gnx.ganesa.application.plugin;

import java.util.Vector;

import org.eclipse.swt.widgets.Composite;

import be.gnx.ganesa.application.command.ImportCommand;
import be.gnx.ganesa.application.model.Application;
import be.gnx.ganesa.application.model.Layer;
import be.gnx.ganesa.application.ui.dialog.ImportDialog.ImportDialogResult;
import be.gnx.ganesa.application.ui.widget.ImportTabItemControl;

public abstract class ImportPlugin extends Plugin {

  private static Vector<ImportPlugin> importPlugins = new Vector<ImportPlugin>();;

  public static boolean addImportPlugin(ImportPlugin importPlugin) {
    return importPlugins.add(importPlugin);
  }

  public static Vector<ImportPlugin> getImportPlugins() {
    return importPlugins;
  }

  public abstract ImportCommand newImportCommand(Application application, ImportDialogResult importDialogResult);

  public abstract ImportTabItemControl newImportTabItemControl(Composite parent, int style);

  public abstract <LayerClazz extends Layer> Vector<LayerClazz> newLayers(ImportDialogResult importDialogResult);

}
